package com.wondertek.poms.sync.manager.copyright;

import org.springframework.stereotype.Component;

import com.wondertek.poms.dao.po.Content;
import com.wondertek.poms.dao.po.PrdCont;
import com.wondertek.poms.dao.po.PrdInfo;
import com.wondertek.poms.sync.manager.main.ParentManager;

import cn.hutool.core.util.NumberUtil;
import lombok.extern.slf4j.Slf4j;

/**
 * <p><b>CopyrightManager Description:</b> 版权评分业务流程</p>
 * @author douzi
 * <b>DATE</b> 2020年11月20日 上午9:41:17
 */
@Slf4j
@Component
public class CopyrightManager extends ParentManager {
	/**
	 * <p><b>Title:</b> process</p>
	 * <p><b>Description:</b> 版权比较主流程</p>
	 * 1)、NCPID为800033，且授权方式为单片授权（强版权点播）。
	 * 2)、NCPID为非800033，且授权方式为单片授权（强版权点播），版权最优标识：是。
	 * 3)、NCPID为非800033，且授权方式为单片授权（强版权点播），版权最优标识：否。
	 * 4)、NCPID为非800033，且授权方式为SDK授权。
	 * 5)、NCPID为非800033，且授权方式为集体授权（弱版权点播）。
	 * 6)、NCPID为800033，且授权方式为集体授权（弱版权点播+无版权仅预同步）
	 * @author douzi
	 * @param dbPrd  数据库存在的节目
	 * @param c      本次同步的内容对象
	 * @param prdInfos   商品包集合
	 * @param prdInfo    本次需要进入的商品包
	 * @return
	 */
	public Content process(PrdCont dbPrd, Content c, PrdInfo prdInfo) {
		Content dbCont = contentService.findByContentId(dbPrd.getContentId());
		PrdInfo dbPrdInfo = prdInfo;
		String dbSupportId =  NumberUtil.toStr(dbPrdInfo.getSupportId(), null);
		log.info("主流程|权益|自动匹配权益节点|老内容:" + dbCont.getContentId() + "|新内容id:" + c.getContentId() + "|DB包支撑方：" + dbSupportId + "|");
		if (dbSupportId == null) {
			dbSupportId = "800033";
		}
		String newSupportId = NumberUtil.toStr(prdInfo.getSupportId(), null);
		log.info("主流程|权益|自动匹配权益节点|老内容:" + dbCont.getContentId() + "|新内容id:" + c.getContentId() + "|新包支撑方：" + newSupportId + "|");
		if (newSupportId == null) {
			newSupportId = "800033";
		}
		// 1)、NCPID为800033，且授权方式为单片授权（强版权点播）。
		if (dbSupportId.equals(dbCont.getCopyrightCpid()) 
				&& "1".equals(dbCont.getCopyrightType())) {
			log.info("主流程|权益|自动匹配权益节点|老内容:" + dbCont.getContentId() + "|新内容id:" + c.getContentId() + "|老内容版权为800033，且授权方式为单片授权（强版权点播）");
			return dbCont;
		}
		if (newSupportId.equals(c.getCopyrightCpid()) 
				&& "1".equals(c.getCopyrightType())) {
			log.info("主流程|权益|自动匹配权益节点|老内容:" + dbCont.getContentId() + "|新内容id:" + c.getContentId() + "|新内容版权为800033，且授权方式为单片授权（强版权点播）");
			return c;
		}
		// 2)、NCPID为非800033，且授权方式为单片授权（强版权点播），版权最优标识：是。
		if (!dbSupportId.equals(dbCont.getCopyrightCpid()) 
				&& "1".equals(dbCont.getCopyrightType()) 
				&& "0".equals(dbCont.getOptimal())) {
			log.info("主流程|权益|自动匹配权益节点|老内容:" + dbCont.getContentId() + "|新内容id:" + c.getContentId() + "|老内容NCPID为非800033，且授权方式为单片授权（强版权点播），版权最优标识：是");
			return dbCont;
		}
		if (!newSupportId.equals(c.getCopyrightCpid()) 
				&& "1".equals(c.getCopyrightType()) 
				&& "0".equals(c.getOptimal())) {
			log.info("主流程|权益|自动匹配权益节点|老内容:" + dbCont.getContentId() + "|新内容id:" + c.getContentId() + "|新内容NCPID为非800033，且授权方式为单片授权（强版权点播），版权最优标识：是");
			return c;
		}
		// 3)、NCPID为非800033，且授权方式为单片授权（强版权点播），版权最优标识：否。
		if (!dbSupportId.equals(dbCont.getCopyrightCpid()) 
				&& "1".equals(dbCont.getCopyrightType()) 
				&& "1".equals(dbCont.getOptimal())) {
			log.info("主流程|权益|自动匹配权益节点|老内容:" + dbCont.getContentId() + "|新内容id:" + c.getContentId() + "|老内容NCPID为非800033，且授权方式为单片授权（强版权点播），版权最优标识：否。");
			return dbCont;
		}
		if (!newSupportId.equals(c.getCopyrightCpid()) 
				&& "1".equals(c.getCopyrightType()) 
				&& "1".equals(c.getOptimal())) {
			log.info("主流程|权益|自动匹配权益节点|老内容:" + dbCont.getContentId() + "|新内容id:" + c.getContentId() + "|新内容NCPID为非800033，且授权方式为单片授权（强版权点播），版权最优标识：否。");
			return c;
		}
		// 4)、NCPID为非800033，且授权方式为SDK授权。
		if (!dbSupportId.equals(dbCont.getCopyrightCpid()) 
				&& "4".equals(dbCont.getAuthorizationWay()) ) {
			log.info("主流程|权益|自动匹配权益节点|老内容:" + dbCont.getContentId() + "|新内容id:" + c.getContentId() + "|老内容NCPID为非800033，且授权方式为SDK授权");
			return dbCont;
		}
		if (!newSupportId.equals(c.getCopyrightCpid()) 
				&& "4".equals(c.getAuthorizationWay()) ) {
			log.info("主流程|权益|自动匹配权益节点|老内容:" + dbCont.getContentId() + "|新内容id:" + c.getContentId() + "|新内容NCPID为非800033，且授权方式为SDK授权");
			return c;
		}
		// 5)、NCPID为非800033，且授权方式为集体授权（弱版权点播）。
		if (!dbSupportId.equals(dbCont.getCopyrightCpid()) 
				&& "2".equals(dbCont.getAuthorizationWay()) ) {
			log.info("主流程|权益|自动匹配权益节点|老内容:" + dbCont.getContentId() + "|新内容id:" + c.getContentId() + "|老内容NCPID为非800033，且授权方式为集体授权（弱版权点播）");
			return dbCont;
		}
		if (!newSupportId.equals(c.getCopyrightCpid()) 
				&& "2".equals(c.getAuthorizationWay()) ) {
			log.info("主流程|权益|自动匹配权益节点|老内容:" + dbCont.getContentId() + "|新内容id:" + c.getContentId() + "|新内容NCPID为非800033，且授权方式为集体授权（弱版权点播）");
			return c;
		}
		// 6)、NCPID为800033，且授权方式为集体授权（弱版权点播+无版权仅预同步）
		if (dbSupportId.equals(dbCont.getCopyrightCpid()) 
				&& "2".equals(dbCont.getAuthorizationWay()) ) {
			log.info("主流程|权益|自动匹配权益节点|老内容:" + dbCont.getContentId() + "|新内容id:" + c.getContentId() + "|老内容NCPID为800033，且授权方式为集体授权（弱版权点播+无版权仅预同步）");
			return dbCont;
		}
		if (newSupportId.equals(c.getCopyrightCpid()) 
				&& "2".equals(c.getAuthorizationWay()) ) {
			log.info("主流程|权益|自动匹配权益节点|老内容:" + dbCont.getContentId() + "|新内容id:" + c.getContentId() + "|新内容NCPID为800033，且授权方式为集体授权（弱版权点播+无版权仅预同步）");
			return c;
		}
		
		return dbCont;
	}
	
	public static void main(String[] args) {
//		Long a = null;
//		System.out.println(a);
//		
//		System.out.println(NumberUtil.toStr(null, null));
	}
}
